package com.cti.ftpservice.model.onix;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Boost;
import org.hibernate.search.annotations.DocumentId;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.FieldBridge;
import org.hibernate.search.annotations.Index;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.search.annotations.Store;

import com.cti.ftpservice.utils.LowerCaseStringBridge;







/**
 * Onix 书目基础字段信息类
 * 
 * @author ljk
 *
 */
@Indexed
public class OnixBookBaseInfo {
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@DocumentId
	private Long id;
	

	/**
	 * ISBN
	 */
	@Field(index = Index.YES, analyze = Analyze.NO, store = Store.YES, boost = @Boost(4.0f))
	@FieldBridge(impl = LowerCaseStringBridge.class)
	private String isbn;
	/**
	 * 题名
	 */
	private String title;
	/**
	 * 副题名
	 */
	private String subTitle;
	
	/**
	 * 主题
	 */
	private String subject;
	/**
	 * 丛书名
	 */
	private String seriesTitle;
	/**
	 * 作者
	 */
	private String author;
	/**
	 * 出版社
	 */
	private String publisherName;
	/**
	 * 出版年
	 */
	private String publishYear;
	/**
	 * 出版日期
	 */
	private String publishDate;
	/**
	 * 更新时间
	 */
	private Date   updateDate;
	/**
	 * 上次更新时间
	 */
	private Date  lastUpdateDate;
	/**
	 * 出版地
	 */
	private String publishAddress;
	/**
	 * 币制
	 */
	private String currency;

	/**
	 * 装帧
	 */
	private String binding;
	/**
	 * 页码
	 */
	private String pageSize;
	/**
	 * 版本
	 */
	private String edition;
	/**
	 * 语种
	 */
	private String language;
	/**
	 * 简介
	 */
	private String description;
	
	
	/**
	 * 尺寸
	 */
	private String  dimensions;
	
	/**
	 * 插图
	 */
	private String illustration;
	
	/**
	 * 记录对应的文件来源
	 */
	private FtpFileInfo ftpFileInfo;
	
	/**
	 * 供货价格信息
	 */
	private Set<OnixSupplyBookInfo> supplyInfos=new HashSet<OnixSupplyBookInfo>();
	


	public String getIsbn() {
		return isbn;
	}

	public void setIsbn(String isbn) {
		this.isbn = isbn;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getSubTitle() {
		return subTitle;
	}

	public void setSubTitle(String subTitle) {
		this.subTitle = subTitle;
	}

	public String getSeriesTitle() {
		return seriesTitle;
	}

	public void setSeriesTitle(String seriesTitle) {
		this.seriesTitle = seriesTitle;
	}

	public String getAuthor() {
		return author;
	}

	public void setAuthor(String author) {
		this.author = author;
	}

	public String getPublisherName() {
		return publisherName;
	}

	public void setPublisherName(String publisherName) {
		this.publisherName = publisherName;
	}

	public String getPublishYear() {
		return publishYear;
	}

	public void setPublishYear(String publishYear) {
		this.publishYear = publishYear;
	}

	public String getPublishDate() {
		return publishDate;
	}

	public void setPublishDate(String publishDate) {
		this.publishDate = publishDate;
	}

	public String getPublishAddress() {
		return publishAddress;
	}

	public void setPublishAddress(String publishAddress) {
		this.publishAddress = publishAddress;
	}

	public String getCurrency() {
		return currency;
	}

	public void setCurrency(String currency) {
		this.currency = currency;
	}



	public String getBinding() {
		return binding;
	}

	public void setBinding(String binding) {
		this.binding = binding;
	}

	public String getPageSize() {
		return pageSize;
	}

	public void setPageSize(String pageSize) {
		this.pageSize = pageSize;
	}

	public String getEdition() {
		return edition;
	}

	public void setEdition(String edition) {
		this.edition = edition;
	}

	public String getLanguage() {
		return language;
	}

	public void setLanguage(String language) {
		this.language = language;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}


	public Date getLastUpdateDate() {
		return lastUpdateDate;
	}

	public void setLastUpdateDate(Date lastUpdateDate) {
		this.lastUpdateDate = lastUpdateDate;
	}

	public Date getUpdateDate() {
		return updateDate;
	}

	public void setUpdateDate(Date updateDate) {
		this.updateDate = updateDate;
	}

	public String getDimensions() {
		return dimensions;
	}

	public void setDimensions(String dimensions) {
		this.dimensions = dimensions;
	}

	public String getSubject() {
		return subject;
	}

	public void setSubject(String subject) {
		this.subject = subject;
	}

	public String getIllustration() {
		return illustration;
	}

	public void setIllustration(String illustration) {
		this.illustration = illustration;
	}

	public FtpFileInfo getFtpFileInfo() {
		return ftpFileInfo;
	}

	public void setFtpFileInfo(FtpFileInfo ftpFileInfo) {
		this.ftpFileInfo = ftpFileInfo;
	}

	public Set<OnixSupplyBookInfo> getSupplyInfos() {
		return supplyInfos;
	}

	public void setSupplyInfos(Set<OnixSupplyBookInfo> supplyInfos) {
		this.supplyInfos = supplyInfos;
	}
}
